package com.tedu.api.date.io;

import org.apache.commons.imaging.ImageFormats;
import org.apache.commons.imaging.ImageReadException;
import org.apache.commons.imaging.ImageWriteException;
import org.apache.commons.imaging.Imaging;
import org.junit.Test;

import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;

/**
 * IO流---针对 图片
 *
 * 项目结构:Maven互联网型项目
 *     功能:下载第三方jar包[高手写好类,压缩jar文件---引入---使用类]
 *     第三方jar官方下载地址:百度搜 :mvn仓库
 *     http://mvnrepository.com/
 *
 *     Apche Commons Imaging 包:针对IO流 图片传输流--封装
 *                               处理各种图像格式外置包
 *                               读入写出--JPEG,PNG,GIF,TIFF
 *      研究 第三方  xxx.jar   百度搜:   Apache Commons Imaging使用
 *      类中存在大量静态块,通过类名直接调用
 *
 *      使用Apche Commons Imaging jar[包--压缩文件叫法
 *                                     库--使用类叫法
 *                                     ]
 */
public class imagineFile {
    /**
     * Imaging 提供一套读写图片流方法
     * 读:getBufferedImagine() 可以通过FIle文件路径找到一个图片
     *                          并且打印图片信息[宽高]
     *        返回值:BufferedImagine 缓冲图片流
     *
     */
    @Test
    public void testIg() throws IOException, ImageReadException {
        //1.创建FIle文件类---找到图片:路径地址+图片全称
        File file = new File("2.pong");
        //2.Imaging图片类,静态方法getBufferedImagine() 获取图片信息
        BufferedImage bi =Imaging.getBufferedImage(file);
        //3.获取图片信息
        int height=bi.getHeight();
        int width=bi.getWidth();
        System.out.println("图片宽:"+width+"高"+height);
    }
    /**
     * writeImagine(读入图片,写出图片位置,图片格式,null)
     * 写出一个图片,先读入一张图片,然后再写出
     *
     */
    @Test
    public void testWI() throws IOException, ImageReadException, ImageWriteException {
        //1.读入一张图片
        File file= new File("2.pong");
        Imaging.getBufferedImage(file);
        //2.写出图片全称
        File desc=new File("ma.png");
        //3.Imaging类--调用静态方法
        //ImagineFormat类
        //vesion1 ImagineFormat.foramat("png");指定图片格式
        //version2 ImagineFormats.PNG 静态常量属性
        BufferedImage bi = null;
        Imaging.writeImage(bi,desc, ImageFormats.JPEG,null);
        
    }

}
